package com.xunsiya.service.module.device;

import com.xunsiya.module.device.vo.Device;
import com.xunsiya.system.vo.Company;
import com.xunsiya.system.vo.User;
import com.xunsiya.tools.common.msg.Msg;
import com.xunsiya.tools.common.pagination.ForePage;

import java.util.List;

/**
 * 设备管理Service
 *
 * @author jiax
 * @version 1.0
 * <p>
 * <p>修订人		修订时间			描述信息
 * <p>-----------------------------------------------------
 * <p>jiax		2018/11/6		初始创建
 */
public interface DeviceService {

    /**
     * 添加设备
     *
     * @param device 设备信息
     * @return
     */
    public Msg saveDevice(Device device);

    /**
     * 删除设备
     *
     * @param id 设备id
     * @return
     */
    public boolean deleteDevice(Integer id);

    /**
     * 分页查询
     *
     * @param device    设备信息
     * @param pageIndex 起始页
     * @param pageSize  每页数量
     * @return
     */
    public ForePage<Device> findPage(Device device, int pageIndex, int pageSize);

    /**
     * 查询所有设备
     * @param device
     * @param pageIndex
     * @param pageSize
     * @return
     */
    public ForePage<Device> findAll(Device device, int pageIndex, int pageSize);

    /**
     * 根据id查询记录
     *
     * @param id 设备id
     * @return
     */
    public List<Device> queryDeviceById(Integer id);

    /**
     * 删除设备的同事根据蓝牙地址删除对应的设备时长使用记录
     *
     * @param guid 蓝牙设备地址
     * @return
     */
    public boolean deleteSpendTime(String guid);
    /**
     * 获取企业id
     * @param deviceId 设备编号
     * @return
     */
    public Integer getDeviceId(String deviceId);

    /**
     * 激活设备
     *
     * @param device 设备
     * @return
     */
    public Msg activation(Device device);

    /**
     * 查询绑定的用户
     *
     * @param device 设备
     * @return
     */
    public List<User> findBindUsers(Device device);

    /**
     * 查询设备
     *
     * @param device 设备
     * @return
     */
    public List<Device> queryAllTypesDevice(Device device);

    /**
     *  查询子公司
     *
     * @param device 设备
     * @return
     */
    public List<Company> findSubCompany(Device device);

    /**
     * 查询平台编号
     * @return
     */
    public Integer findPlantformId();

    /**
     * 查询用户名字
     * @return
     */
    public String getRealName();

}
